SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE PROC [dbo].[SP_TXMVTO_CNTB_I34]          
/*------------------------------------------------------------*/              
/*----- Empresa          : OFISIS S.A.                    ----*/              
/*----- Cliente          : OFISIS S.A.                    ----*/              
/*----- Sistema          : Contabilidad                   ----*/              
/*----- Modulo           : Empresa                        ----*/              
/*----- Programa         : Gesti?n en Linea (PARA DIF CAMBIO EN LINEA) ----*/              
/*----- Script           : TXMVTO_CNTB                    ----*/              
/*----- Nombre           : SP_TXMVTO_CNTB_I34             ----*/              
/*----- Desarrollado por : PDGV                           ----*/              
/*----- Fecha            : 11/02/2003                     ----*/              
/*----- Base de Datos    : MS SQL Server                  ----*/              
/*----- Version          : 8.0                            ----*/              
/*----- Invoca a SP      : SP_TXMVTO_CNTB_I34             ----*/              
/*------------------------------------------------------------*/              
/*------------------------------------------------------------*/              
/*----- Modificado 1 por : Percy Garc?a                   ----*/              
/*----- Fecha Modifica   : 26/11/2003                     ----*/              
/*----- Detalle Modifica : Basado en el sp_txmvto_cntb_i25----*/             
/*------------------------------------------------------------*/             
/*------------------------------------------------------------*/              
/*----- Drop proc SP_TXMVTO_CNTB_I34                      ----*/              
/*----- Grant all on SP_TXMVTO_CNTB_I34 to public         ----*/              
/*----- SP_TXMVTO_CNTB_I34   '01',1,'001','093', 2003, 2, '0000000001'----*/              
/*------------------------------------------------------------*/              
@ISCO_EMPR         TD_VC_002,              
@INNU_CNTB_EMPR    TD_IN_001,              
@ISCO_UNID_CNTB    TD_VC_003,              
@ISCO_OPRC_CNTB    TD_VC_003,              
@INNU_ANNO         TD_IN_004_ANNO,              
@INNU_MESE         TD_IN_002_MESE,              
@ISNU_ASTO         TD_VC_010,               
@ISCO_CNTA_EMPR    TD_VC_020,             
@ISST_FLAG         TD_VC_003,                
@INNU_SECU         TD_IN_002,
@ISCO_USUA          TD_VC_008,
@IDFE_USUA          TD_DT_001                
          
As              
DECLARE               
@VSST_ASIE_AUXI     TD_VC_003,              
@VSST_GEST_0001    TD_VC_001,              
@VSCO_OPRC_0001    TD_VC_003,              
@VSCO_CNTA_DEST  TD_VC_020_CNTA,              
@VSCO_CNTA_CONT  TD_VC_020_CNTA,              
@VSST_CNTA_CAMB  TD_VC_003,              
@VSST_AUXI_0001  TD_VC_001_SINO,              
@VSST_AUXI_0002   TD_VC_001_SINO,              
@VNNU_MAXI_SECU  TD_IN_002,              
@VSCO_MONE_0001  TD_VC_003,              
@VNFA_CMPR_0001  TD_NU_015_006,              
@VNFA_VNTA_0001   TD_NU_015_006,              
@VNFA_CAMB_0001   TD_NU_015_006,              
@VSTI_AUXI_0001 TD_VC_001,              
@VSCO_AUXI_0001 TD_VC_020,              
@VSTI_AUXI_0002 TD_VC_001,              
@VSCO_AUXI_0002 TD_VC_020,              
@VSTI_OPER_DEST TD_VC_003,              
@VSTI_OPER_CONT   TD_VC_003,              
@CNNU_SECU    TD_IN_002,              
@CSCO_CNTA_EMPR    TD_VC_020_CNTA,              
@CSTI_AUXI_EMPR   TD_VC_001,              
@CSCO_AUXI_EMPR   TD_VC_020,              
@CSCO_MONE    TD_VC_003,              
@CSTI_OPER    TD_VC_003,              
@CNIM_MVTO_ORIG      TD_NU_016_004,              
@CNIM_MVTO_CNTB  TD_NU_016_004,              
@CSDE_GLOS           TD_VC_100,              
@CSCO_ORDE_SERV  TD_VC_020,              
@CDFE_ASTO_CNTB  TD_DT_001,              
@CSTI_CAMB           TD_VC_003,              
@CNFA_CAMB           TD_NU_015_006,              
@CSSI_MVTO_CNTB      TD_VC_003,              
@CDFE_DOCU_VENC      TD_DT_001,              
@CNFA_CAMB_DIAR      TD_NU_015_006,              
@CDFE_DOCU_REFE  TD_DT_001,              
@CNNU_PROC      TD_IN_001,              
@CNNU_PROC_SECU  TD_IN_001  ,            
-------------------------            
@VSCO_MONE     TD_VC_003,              
@IDFE_ASTO     TD_DT_001,            
@VSSI_MVTO_CNTB TD_VC_003,            
--@VDFE_ASTO_CNTB TD_DT_001,             
@VSCO_GANA_REDO TD_VC_020,            
@VSCO_PERD_REDO TD_VC_020,          
@VNTO_SALD   TD_NU_016_004,             
@VNNU_FACT_REDO TD_NU_015_006,            
@VSID_GANA_REDO TD_VC_003,            
@VSID_PERD_REDO TD_VC_003,            
@VDFE_ASTO_CNTB TD_DT_001,         
@CSST_DIFE_CAMB TD_VC_001,
@CSST_DIFE_MAYO TD_VC_001
              
SELECT @VSST_ASIE_AUXI  = NULL                 
SELECT @VSST_GEST_0001    = NULL              
SELECT @VSCO_OPRC_0001    = NULL              
SELECT @VSCO_CNTA_DEST  = NULL              
SELECT @VSCO_CNTA_CONT  = NULL              
SELECT @VSST_CNTA_CAMB  = NULL              
SELECT @VSST_AUXI_0001  = NULL              
SELECT @VSST_AUXI_0002   = NULL              
SELECT @VNNU_MAXI_SECU  = 0.00              
SELECT @VSCO_MONE_0001  = NULL              
SELECT @VNFA_CMPR_0001  = 0.00              
SELECT @VNFA_VNTA_0001   = 0.00              
SELECT @VNFA_CAMB_0001   = 0.00              
SELECT @VSTI_AUXI_0001 = NULL              
SELECT @VSCO_AUXI_0001 = NULL              
SELECT @VSTI_AUXI_0002 = NULL              
SELECT @VSCO_AUXI_0002 = NULL              
SELECT @VSTI_OPER_DEST = NULL              
SELECT @VSTI_OPER_CONT   = NULL              
SELECT @CNNU_SECU  = 0              
SELECT @CSCO_CNTA_EMPR    = NULL              
SELECT @CSTI_AUXI_EMPR   = NULL              
SELECT @CSCO_AUXI_EMPR   = NULL              
SELECT @CSCO_MONE = NULL              
SELECT @CSTI_OPER = NULL              
SELECT @CNIM_MVTO_ORIG  = 0.00              
SELECT @CNIM_MVTO_CNTB = 0.00              
SELECT @CSDE_GLOS       = NULL              
SELECT @CSCO_ORDE_SERV = NULL              
SELECT @CDFE_ASTO_CNTB = NULL              
SELECT @CSTI_CAMB           = NULL              
SELECT @CNFA_CAMB           = 0.00              
SELECT @CSSI_MVTO_CNTB      = NULL              
SELECT @CDFE_DOCU_VENC      = NULL              
SELECT @CNFA_CAMB_DIAR      = 0.00              
SELECT @CDFE_DOCU_REFE  = NULL              
SELECT @CNNU_PROC           = 0              
SELECT @CNNU_PROC_SECU  = 0              
              
 SELECT @VSST_ASIE_AUXI = ST_ASIE_GEST,@VSST_GEST_0001= ST_GEST_LINE            
 FROM TMPARA_CONT              
 WHERE CO_EMPR = @ISCO_EMPR              
               
 SELECT  @VSCO_OPRC_0001 = CO_OPRC_CNTB                
 FROM TTIDEN_OPER              
 WHERE              
 CO_EMPR = @ISCO_EMPR And               
 ID_OPRC = '011' And              
 NU_CNTB_EMPR = @INNU_CNTB_EMPR               
              
IF @VSST_ASIE_AUXI = 'ORI'              
 BEGIN              
   IF @VSST_GEST_0001 ='S'              
   BEGIN              
/*     DELETE FROM TXMVTO_CNTB               
     WHERE CO_EMPR      = @ISCO_EMPR And              
     NU_CNTB_EMPR = @INNU_CNTB_EMPR  And              
     CO_UNID_CNTB  = @ISCO_UNID_CNTB And              
     CO_OPRC_CNTB =  @VSCO_OPRC_0001 And              
     NU_ANNO      =  @INNU_ANNO And              
     NU_MESE      =  @INNU_MESE  And              
     ST_GEST       = 'S'      */          
              
    DECLARE CU_TXMVTO_CNTB_I34_1 CURSOR              
    For              
    Select NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
    TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,              
    IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS,               
    SI_MVTO_CNTB, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,              
    NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_DIFE_CAMB, ST_DIFE_MAYO             
    FROM TXMVTO_CNTB       
    WHERE   CO_EMPR = @ISCO_EMPR              
    AND NU_CNTB_EMPR = @INNU_CNTB_EMPR              
    AND CO_UNID_CNTB = @ISCO_UNID_CNTB              
    AND CO_OPRC_CNTB = @ISCO_OPRC_CNTB              
    AND NU_ANNO = @INNU_ANNO              
    AND NU_MESE = @INNU_MESE              
    AND NU_ASTO = @ISNU_ASTO              
    And ( (@ISST_FLAG = 'ORI' And CO_CNTA_EMPR = @ISCO_CNTA_EMPR And NU_SECU = @INNU_SECU ) Or (@ISST_FLAG = 'COP'))            
    And ( (@ISST_FLAG = 'ORI') Or (@ISST_FLAG = 'COP' And NU_SECU = @INNU_SECU))            
    And SI_MVTO_CNTB = 'APR'              
             
    OPEN  CU_TXMVTO_CNTB_I34_1              
    FETCH CU_TXMVTO_CNTB_I34_1 INTO @CNNU_SECU,@CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,              
 @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_CAMB,@CSCO_MONE,@CNFA_CAMB,              
 @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB,@CSDE_GLOS,@CSSI_MVTO_CNTB,              
 @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR, @CDFE_DOCU_REFE,               
 @CNNU_PROC, @CNNU_PROC_SECU, @CSCO_ORDE_SERV, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO
         
    WHILE  @@Fetch_Status = 0              
      BEGIN              
  SELECT  @VSCO_CNTA_DEST = CO_CNTA_DEST, @VSCO_CNTA_CONT = CO_CNTA_CONT,               
                @VSST_CNTA_CAMB = ST_CNTA_CAMB              
 FROM TMPLAN_EMPR              
 WHERE CO_EMPR = @ISCO_EMPR              
 AND CO_CNTA_EMPR = @CSCO_CNTA_EMPR              
 AND NU_ANNO = 9999              
 -- saca de la tabla TRAUXI_GEST las cuentas contrapartida y destino              
 If @VSCO_CNTA_DEST Is NULL Or @VSCO_CNTA_CONT Is NULL              
 Begin               
                
 Select @VSCO_CNTA_DEST = CO_CNTA_DEST, @VSCO_CNTA_CONT = CO_CNTA_CONT              
 From TRAUXI_GEST              
 Where CO_EMPR = @ISCO_EMPR              
 And CO_CNTA_EMPR = @CSCO_CNTA_EMPR              
 And TI_AUXI_EMPR = @CSTI_AUXI_EMPR              
 And CO_AUXI_EMPR = @CSCO_AUXI_EMPR              
              
/*        Select  @VSST_CNTA_CAMB = ST_CNTA_CAMB              
 From TMPLAN_EMPR           
 Where CO_EMPR = @ISCO_EMPR              
 And   CO_CNTA_EMPR = @CSCO_CNTA_EMPR              
 And   NU_ANNO = 9999            */  
      End           
 -- fin saca de la tabla TRAUXI_GEST las cuentas contrapartida y destino              
                 
  IF @VSCO_CNTA_DEST IS NOT  NULL  AND @VSCO_CNTA_CONT IS NOT  NULL BEGIN              
      SELECT @VSST_AUXI_0001 = ST_AUXI_EMPR                
    FROM TMPLAN_EMPR              
    WHERE CO_EMPR = @ISCO_EMPR              
    AND CO_CNTA_EMPR = @VSCO_CNTA_DEST              
    AND NU_ANNO = 9999              
              
      SELECT @VSST_AUXI_0002 = ST_AUXI_EMPR                
    FROM TMPLAN_EMPR              
    WHERE CO_EMPR = @ISCO_EMPR              
    AND CO_CNTA_EMPR = @VSCO_CNTA_CONT              
    AND NU_ANNO = 9999              
              
      SELECT  @VNNU_MAXI_SECU = MAX(NU_SECU) + 1               
      FROM TXMVTO_CNTB               
    WHERE               
    CO_EMPR  =  @ISCO_EMPR    And                                                         
    NU_CNTB_EMPR  =  @INNU_CNTB_EMPR  And              
    CO_UNID_CNTB  =  @ISCO_UNID_CNTB  And              
    CO_OPRC_CNTB  =  @ISCO_OPRC_CNTB  And              
    NU_ANNO  =  @INNU_ANNO   And              
    NU_MESE  =  @INNU_MESE    And              
    NU_ASTO  =  @ISNU_ASTO                
              
/*        SELECT  @VSCO_MONE_0001 = CO_MONE                
      FROM TTCNTB_EMPR              
      WHERE CO_EMPR = @ISCO_EMPR              
      And NU_CNTB_EMPR = @INNU_CNTB_EMPR        */      
              
/*        SELECT  @VNFA_CMPR_0001=  ISNULL(FA_CMPR_OFIC,1),              
                      @VNFA_VNTA_0001 = ISNULL(FA_VNTA_OFIC,1)               
      FROM TCFACT_CAMB              
      WHERE CO_MONE <> @VSCO_MONE_0001              
         and FE_CAMB = @CDFE_ASTO_CNTB        */      
/*   IF @VSST_CNTA_CAMB ='COM'              
    SELECT  @VNFA_CAMB_0001 = @VNFA_CMPR_0001              
   IF @VSST_CNTA_CAMB='VEN'                
    SELECT  @VNFA_CAMB_0001 = @VNFA_VNTA_0001        */      
              
   IF @VSST_AUXI_0001 ='N'              
         BEGIN              
    SELECT @VSTI_AUXI_0001 = NULL              
    SELECT @VSCO_AUXI_0001 = NULL              
         END              
   ELSE              
      BEGIN               
    SELECT @VSTI_AUXI_0001 = @CSTI_AUXI_EMPR              
    SELECT @VSCO_AUXI_0001 = @CSCO_AUXI_EMPR              
         END               
              
   IF @VSST_AUXI_0002 ='N'              
         BEGIN              
    SELECT @VSTI_AUXI_0002 = NULL              
    SELECT @VSCO_AUXI_0002 = NULL              
         END              
   ELSE              
         BEGIN               
    SELECT  @VSTI_AUXI_0002 = @CSTI_AUXI_EMPR              
    SELECT  @VSCO_AUXI_0002 = @CSCO_AUXI_EMPR              
         END               
       
   IF @CSTI_OPER = 'CAR' BEGIN              
    SELECT  @VSTI_OPER_DEST = 'CAR'              
    SELECT  @VSTI_OPER_CONT = 'ABO'              
         END               
              
   IF @CSTI_OPER = 'ABO'  BEGIN              
    SELECT @VSTI_OPER_DEST = 'ABO'              
    SELECT @VSTI_OPER_CONT = 'CAR'              
         END              
              
                       
   INSERT INTO TXMVTO_CNTB              
      ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,              
      NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
      TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,              
      IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,               
      NU_ASTO_ORIG, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE, NU_PROC, NU_PROC_SECU, 
      CO_ORDE_SERV, ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO, 
      CO_USUA_CREA,CO_USUA_MODI,FE_USUA_CREA,FE_USUA_MODI)
      VALUES              
      ( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,              
      @INNU_ANNO, @INNU_MESE, @ISNU_ASTO, @VNNU_MAXI_SECU, @CDFE_ASTO_CNTB,             
      @VSCO_CNTA_DEST, @VSTI_AUXI_0001, @VSCO_AUXI_0001, NULL, NULL,              
      NULL, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @VSTI_OPER_DEST,               
      @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSSI_MVTO_CNTB, @ISCO_UNID_CNTB,               
      @ISCO_OPRC_CNTB, @ISNU_ASTO,@CDFE_DOCU_VENC, 1.00, @CDFE_DOCU_REFE, @CNNU_PROC, 
      @CNNU_PROC_SECU, NULL, 'S', 'N', @CSCO_CNTA_EMPR, @CNNU_SECU, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO,
      @ISCO_USUA,@ISCO_USUA,@IDFE_USUA,@IDFE_USUA)
              
   SELECT  @VNNU_MAXI_SECU = @VNNU_MAXI_SECU +1              
              
   INSERT  INTO TXMVTO_CNTB              
      ( CO_EMPR, NU_CNTB_EMPR, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ANNO, NU_MESE,              
      NU_ASTO, NU_SECU, FE_ASTO_CNTB, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,              
      TI_DOCU, NU_DOCU, FE_DOCU, TI_CAMB, CO_MONE, FA_CAMB, TI_OPER,              
      IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG,               
      NU_ASTO_ORIG, FE_DOCU_VENC, FA_CAMB_DIAR, FE_DOCU_REFE,              
      NU_PROC, NU_PROC_SECU, CO_ORDE_SERV, ST_GEST, ST_REDO, CO_CNTA_ORIG, NU_SECU_ORIG, ST_DIFE_CAMB, ST_DIFE_MAYO,
      CO_USUA_CREA,CO_USUA_MODI,FE_USUA_CREA,FE_USUA_MODI)
          VALUES              
      ( @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @ISCO_OPRC_CNTB,              
        @INNU_ANNO, @INNU_MESE, @ISNU_ASTO, @VNNU_MAXI_SECU, @CDFE_ASTO_CNTB,              
        @VSCO_CNTA_CONT, @VSTI_AUXI_0002, @VSCO_AUXI_0002, NULL, NULL,              
        NULL, @CSTI_CAMB, @CSCO_MONE, @CNFA_CAMB, @VSTI_OPER_CONT,               
        @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB, @CSDE_GLOS, @CSSI_MVTO_CNTB,  @ISCO_UNID_CNTB,               
        @ISCO_OPRC_CNTB, @ISNU_ASTO, @CDFE_DOCU_VENC, 1.00, @CDFE_DOCU_REFE, @CNNU_PROC, 
        @CNNU_PROC_SECU, NULL, 'S', 'N', @CSCO_CNTA_EMPR, @CNNU_SECU, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO,
        @ISCO_USUA,@ISCO_USUA,@IDFE_USUA,@IDFE_USUA)
                   
END  -- @VSCO_CNTA_DEST AND @VSCO_CNTA_CONT              
FETCH CU_TXMVTO_CNTB_I34_1 INTO @CNNU_SECU,@CDFE_ASTO_CNTB, @CSCO_CNTA_EMPR,              
     @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,@CSTI_CAMB,@CSCO_MONE,@CNFA_CAMB,              
     @CSTI_OPER, @CNIM_MVTO_ORIG, @CNIM_MVTO_CNTB,@CSDE_GLOS,@CSSI_MVTO_CNTB,              
     @CDFE_DOCU_VENC, @CNFA_CAMB_DIAR, @CDFE_DOCU_REFE,               
     @CNNU_PROC, @CNNU_PROC_SECU, @CSCO_ORDE_SERV, @CSST_DIFE_CAMB, @CSST_DIFE_MAYO             
              
END -- END DEL WHILE              
              
CLOSE CU_TXMVTO_CNTB_I34_1               
   DEALLOCATE CU_TXMVTO_CNTB_I34_1               
             
              
END -- S              
END  -- ORI              
              
RETURN              







GO
